package com.iszhangsc.backup.service;

import com.iszhangsc.backup.model.BackupRecord;
import com.iszhangsc.backup.param.dto.ReductionDTO;
import com.iszhangsc.backup.param.vo.DatabaseTableVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author zhāngshìchāng
 * @date 2020/12/8 3:05 下午
 */
public interface DatabaseBackupService {


    /**
     * 备份
     * @return true->备份成功.
     */
    boolean doBackup();

    /**
     * 还原
     * @param dto   还原参数对象
     * @return true->还原成功.
     */
    boolean doReduction(ReductionDTO dto);

    /**
     * 查询当前应用数据库下对应的表名、表注释
     * @param tableSchema      数据库名称
     * @return      DatabaseTableVO
     */
    List<DatabaseTableVO> tables(String tableSchema);
    /**
     * 初始化数据库
     * @return true->初始化成功.
     */
    boolean initdb();
    /**
     * 分页查询
     * @param pageNum   页码
     * @param pageSize  页大小
     * @return          Page
     */
    Page<BackupRecord> page(Integer pageNum, Integer pageSize);

}
